package creador;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import main.Programa;
import entidades.Ladrillo;


import recursos.Coordenada;
import roles.Goomba;
import roles.KoopaTroopa;
import roles.Malo;

public class CreadorPorArchivo {

	protected Programa p;
	
	public CreadorPorArchivo(  Programa p ){
		this.p = p;
		parseFile();
	}
		
	protected void parseFile(  ){
		int line = 0;
		try{
			InputStream is = getClass().getResourceAsStream("/recursos/level1.txt");
		    BufferedReader in = new BufferedReader(new InputStreamReader(is));
			String str;
			while ((str = in.readLine()) != null) {
				this.parseLine(line, str); 
			    line++;
			}
			in.close();
			}catch (IOException e) {
		}
	}
		
	
	/*
	 * X = ladrillo irrompible
	 * Y = ladrillo rompible
	 * C = base del canio Der
	 * G = base del canio Izq
	 * D = tapa del canio Der
	 * H = tapa del canio Izq
	 * M = Goompa
	 * J = Koopa Troopa
	 */
	protected void parseLine(int line, String str ){
		for( int i = 0; i < str.length(); i++ ){
			Character c = new Character(str.charAt(i));
			switch(c) {
				case 'X' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(0);
					p.agregarLadrillo(aux);
				}break;
				case 'Y' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(1);
					p.agregarLadrillo(aux);
				}break;
				case 'C' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(2);
					p.agregarLadrillo(aux);
				}break;
				case 'D' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(5);
					p.agregarLadrillo(aux);
				}break;
				case 'G' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(3);
					p.agregarLadrillo(aux);
				}break;
				case 'H' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(6);
					p.agregarLadrillo(aux);
				}break;
				case 'P' :{
					Ladrillo aux = new Ladrillo(new Coordenada(line*32,i*32),false,p);
					aux.establecerImagen(4);
					p.agregarLadrillo(aux);
				}break;
				case 'M' :{
					Goomba aux = new Goomba(p,new Coordenada(line*32,i*32));
					p.agregarMalo(aux);
				}break;
				case 'J' :{
					KoopaTroopa aux = new KoopaTroopa(p,new Coordenada(line*32,i*32));
					p.agregarMalo(aux);
				}break;
			}
			
		}
	}
	
	
}
